Machine tool systems generally execute part programs that include instructions interpreted by the machine tool control software to generate commands for controlling the operation of the machine tool system. Some of the instructions result in repositioning a tool, used by the machine tool system to shape or cut a part, from one position to another. It is, of course, desirable to move the tool from one position to another without making undesired contact with the part or components of the machine tool system. Accordingly, part programmers specify in the part program intermediate moves for withdrawing or retracting the tool from the first position (to put distance between the tool and the part), repositioning the tool to a location above the second position, and plunging the tool to the second position.
As should be apparent from the foregoing, programmers of part programs for use by conventional machine tool control software must specify the intermediate, repositioning moves in the part program while keeping in mind the limitations of the machine tool system that will execute the part program. All machine tool systems have a “working space,” which is the three-dimensional volume within which a tool may be moved. The repositioning moves in the part program must take into account the maximum extent to which a tool may be moved in the working space, the location of the part in the working space, and the dimensions (e.g., length) of the tool being repositioned so as to avoid the generation of a motion command by the machine tool control software that exceeds a limit of the working space (“a machine limit”) or causes the tool to make undesired contact with the part or a component of the machine tool system. If the part program is not written with these limitations in mind, or if the part program is executed by a machine tool system with physical characteristics that are different from those originally contemplated by the programmer, damage to the part or machine tool system may occur or execution of the part program may be terminated because a machine limit would otherwise be exceeded. The machine tool system operator must then revise the part program instructions to avoid such errors. In summary, because conventional machine tool control software must be provided repositioning moves by the part program, the part program instructions must be written for a specific machine configuration or a “worst case” machine configuration to avoid unintended consequences and/or errors.
In an exemplary embodiment of the present disclosure, a motion control system is provided for a machine tool system that automatically determines moves needed to reposition a tool from a first position specified in a part program to a second position specified in the part program while maintaining a safe distance from the part and while minimizing machine limit errors. One result of the motion control system's design is that part programs may be written in a machine-independent fashion, and executed by any of a variety of machine tool systems that employ the motion control system of the present disclosure.
In an example of the present disclosure, a method is provided for automatically repositioning a tool within a three-dimensional working space of a machine tool system from a current position to a target position. The method includes the steps of (A) computing at least one retract move of the tool, based on a retract vector, from the current position to a retracted position in a retract plane by adjusting the retract vector, as necessary, such that the retract vector corresponds to movement of the tool toward the retract plane while remaining within the working space of the machine tool system; (B) computing at least one plunge move of the tool, based on a motion vector that is an inverse of a plunge vector, from the target position to a plunge position in the retract plane by adjusting the motion vector, as necessary, such that the motion vector corresponds to movement of the tool toward the retract plane while remaining within the working space of the machine tool system; and (C) moving the tool from the current position, to the retracted position and from the plunge position to the target position.
In another exemplary embodiment of the present disclosure, a method is provided for automatically repositioning a tool of a machine tool system from a start position to a target position. The method includes the steps of (A) executing a reorientation sequence wherein the tool is moved from the start position to a reoriented position wherein the tool has an orientation corresponding to the target position; (B) executing a retract sequence including the steps of determining whether retracting the tool from the reoriented position to a retracted position in a retract plane along a retract vector would exceed an axis limit of the machine tool system, if retracting the tool along the retract vector would exceed the axis limit, clipping a direction component of the retract vector corresponding to the exceeded axis limit, and computing a new retract vector for moving the tool to the retracted position, storing a retract move of the tool from the reoriented position to the retracted position; (C) executing a plunge sequence including the steps of determining whether retracting the tool from the target position to a plunge position in the retract plane along a motion vector that is an inverse of a plunge vector would exceed an axis limit of the machine tool system, if retracting the tool along the motion vector would exceed the axis limit, clipping a direction component of the motion vector corresponding to the exceeded axis limit, and computing a new motion vector for moving the tool to the plunge position, storing a plunge move of the tool from the plunge position to the target position; (D) executing the retract move; and (E) executing the plunge move.
In yet a further exemplary embodiment of the present disclosure, a method is provided for automatically repositioning a tool of a machine tool system from a current position to a target position. The method includes the steps of (A) computing a retract sequence including the steps of determining whether retracting the tool from the current position to a retracted position in a retract plane along a retract vector would exceed any axis limits of the machine tool system, adjusting the retract vector to avoid exceeding any axis limits, storing at least one move in a retract sequence of moves for repositioning the tool from the current position to the retracted position; (B) computing a plunge sequence including the steps of determining whether retracting the tool from the target position to a plunge position in the retract plane along a motion vector that is an inverse of a plunge vector would exceed any axis limits of the machine tool system, adjusting the motion vector to avoid exceeding any axis limits, storing in reverse order at least one move in a plunge sequence of moves for repositioning the tool from the target position to the plunge position; (D) executing the retract sequence of moves; and (E) executing the plunge sequence of moves.
In a still further exemplary embodiment of the present disclosure, an apparatus is provided for machining a part with at least one tool. The apparatus comprises a frame; a moveable support supported by and moveable relative to the frame, the moveable support supporting the part; a machine tool spindle supported by the frame and moveable relative to the part, the machine tool spindle adapted to couple to the at least one tool, the moveable support and the machine tool spindle being movable by a drive system within a three-dimensional working space defined by a plurality of axis limits; and a motion control system operably coupled to the machine tool spindle and the moveable support, the motion control system including a controller that controls movement of the machine tool spindle and the moveable support to automatically reposition the tool from a first position to a second position, both positions being specified by a part program independently of the plurality of axis limits. The controller of the apparatus repositions the tool by computing at least one retract move of the tool, based on a retract vector, from the first position to a retracted position in a retract plane by adjusting the retract vector, as necessary, such that the retract vector corresponds to movement of the tool toward the retract plane while remaining within the three-dimensional working space; computing at least one plunge move of the tool, based on a motion vector that is an inverse of a plunge vector, from the second position to a plunge position in the retract plane by adjusting the motion vector, as necessary, such that the motion vector corresponds to movement of the tool toward the retract plane while remaining within the three-dimensional working space; and outputting motion commands to the drive system, thereby moving the tool from the first position, to the retracted position and from the plunge position to the second position.
In a still further exemplary embodiment of the present disclosure, a motion control system is provided for a multi-axis machine tool system having a support, a spindle, and a drive system coupled to the support and the spindle for adjusting the position of a tool relative to a part. The motion control system includes an I/O module including a part program including a plurality of commands and machine configuration information that defines a three-dimensional working space of the machine tool system; and a software controller that receives the machine configuration information from the I/O module, processes the part program commands, and outputs motion commands to the drive system that result in relative motion of the tool and the part. The software controller includes an algorithm for repositioning the tool from a first position to a second position while automatically remaining within the three-dimensional working space, both positions being specified by the part program without reference to the machine configuration information, the algorithm including the steps of repositioning the tool by outputting motion commands to the drive system to move the tool from the first position to a reoriented position at a limit of the three-dimensional working space in an orientation relative to the part that corresponds to an orientation of the second position, computing a retract move of the tool, based on a current retract vector, from the reoriented position to a retracted position in a retract plane by adjusting the current retract vector, as necessary, to maintain the tool within the three-dimensional working space, computing at least one plunge move of the tool, based on a current motion vector that is an inverse of a plunge vector, from the second position to a plunge position in the retract plane by adjusting the current motion vector, as necessary, to maintain the tool within the three-dimensional working space, and outputting motion commands to the drive system, thereby moving the tool from the first position, to the retracted position and from the plunge position to the second position.
In yet a further exemplary embodiment of the present disclosure, a motion control system is provided for a multi-axis machine tool system configured to shape a part with a movable tool. The motion control system includes an I/O module including machine configuration information that defines three axis limits of a three-dimensional working space of the machine tool system and a part program that specifies a first position of a tool and a second position of the tool without reference to the location of the part within the working space, the dimensions of the tool, or the limits; and a software controller configured to (A) internally process moves to determine whether the tool can be safely repositioned from the first position to the second position, safe repositioning being defines as maintaining the tool above a minimum clearance from the part and within the limits, (B) output the internally processed moves to the machine tool system to cause movement of the tool from the first position to the second position if the tool can be safely repositioned, and (C) output an error to the machine tool system if the tool cannot be safely repositioned.
Corresponding reference characters indicate corresponding parts throughout the several views.